package com.weilan.blog.admin.service;

import com.weilan.blog.admin.entity.SysAdmin;
import com.weilan.blog.admin.vo.SysAdminVO;
import com.weilan.blog.base.service.SuperService;

import java.util.List;

/**
 * @description:
 * @author: 孙 峰
 * @time: 2020/9/23 22:25
 */
public interface SysAdminService extends SuperService<SysAdmin> {
    /**
     * 通过UID获取SysAdmin
     *
     * @param uid
     * @return
     */
    public SysAdmin getAdminByUid(String uid);

    /**
     * 获取在线用户列表
     *
     * @param adminVO
     * @return
     */
    public String getOnlineAdminList(SysAdminVO adminVO);

    /**
     * Web端通过用户名获取一个Admin
     *
     * @param userName
     * @return
     */
    public SysAdmin getAdminByUser(String userName);

    /**
     * 获取当前管理员
     *
     * @return
     */
    public SysAdmin getMe();

    /**
     * 添加在线用户
     *
     * @param admin            管理员
     * @param expirationSecond 过期时间【秒】
     */
    public void addOnlineAdmin(SysAdmin admin, Long expirationSecond);

    /**
     * 获取管理员列表
     *
     * @param adminVO
     * @return
     */
    public String getList(SysAdminVO adminVO);

    /**
     * 添加管理员
     *
     * @param adminVO
     * @return
     */
    public String addAdmin(SysAdminVO adminVO);

    /**
     * 编辑管理员
     *
     * @param adminVO
     * @return
     */
    public String editAdmin(SysAdminVO adminVO);

    /**
     * 编辑当前管理员信息
     *
     * @return
     */
    public String editMe(SysAdminVO adminVO);

    /**
     * 修改密码
     *
     * @return
     */
    public String changePwd(String oldPwd, String newPwd);

    /**
     * 重置密码
     *
     * @param adminVO
     * @return
     */
    public String resetPwd(SysAdminVO adminVO);

    /**
     * 批量删除管理员
     *
     * @param adminUids
     * @return
     */
    public String deleteBatchAdmin(List<String> adminUids);

    public String forceLogout(List<String> tokenList);
}
